1
Урок 7: Передача обучения — использование знаний
EvoClass-AI002Лекция 7
00:00

Добро пожаловать на урок 7, где мы знакомимся с передачей обучения. Этот метод включает повторное использование модели глубокого обучения, которая уже была обучена на огромном общем наборе данных (например, ImageNet), и адаптацию её для решения новой, специфической задачи (например, нашей задачи по классификации еды). Он необходим для достижения передовых результатов эффективно, особенно когда доступны ограниченные аннотированные данные.

1. Сила предварительно обученных весов

Глубокие нейронные сети учатся выделять признаки иерархически. Нижние слои усваивают фундаментальные понятия (края, углы, текстуры), а более глубокие слои объединяют их в сложные концепции (глаза, колеса, конкретные объекты). Ключевая идея заключается в том, что базовые признаки, изученные на ранних этапах, являются универсально применимымив большинстве визуальных областей.

Компоненты передачи обучения

  • Исходная задача: Обучение на 14 миллионах изображений и 1000 категориях (например, ImageNet).
  • Целевая задача: Адаптация весов для классификации значительно меньшего набора данных (например, наших конкретных классов для системы «FoodVision»).
  • Используемый компонент: Огромное большинство параметров сети — слои извлечения признаков — используются напрямую.
Экономия ресурсов
Передача обучения радикально снижает два основных барьера ресурсов: Вычислительные затраты (вы избегаете обучения всей модели в течение нескольких дней) и Требования к данным (высокая точность может быть достигнута с сотнями, а не тысячами примеров обучающих данных).
train.py
ТЕРМИНАЛbash — pytorch-env
> Готово. Нажмите «Запустить», чтобы выполнить.
>
ИНСПЕКТОР ТЕНЗОРОВ В реальном времени

Запустите код для просмотра активных тензоров
Вопрос 1
Каково главное преимущество использования модели, предварительно обученной на ImageNet, для новой задачи компьютерного зрения?
Она требует меньше размеченных данных, чем обучение с нуля.
Она полностью устраняет необходимость в каких-либо обучающих данных.
Она гарантирует 100% точность немедленно.
Вопрос 2
В рабочем процессе передачи обучения, какая часть нейронной сети обычно замораживается?
Последний выходной слой (головка классификатора).
Свёрточная основа (слои извлечения признаков).
Вся сеть обычно не заморожена.
Вопрос 3
При замене головки классификатора в PyTorch, какой параметр нужно первым определить из замороженной основы?
Размер пакета целевых данных.
Размер входного признака (размеры выхода последнего свёрточного слоя).
Общее количество параметров модели.
Вызов: Адаптация головки классификатора
Проектирование нового классификатора для FoodVision.
Вы загружаете модель ResNet, предварительно обученную на ImageNet. Её последний слой признаков выводит вектор размером 512. Ваш проект «FoodVision» имеет 7 различных классов еды.
Шаг 1
Какой размер входного признака требуется для нового, обучаемого линейного слоя?
Решение:
Размер входного признака должен соответствовать выходу замороженного базового слоя.
Размер: 512.
Шаг 2
Какой фрагмент кода PyTorch используется для создания этого нового классификатора (предполагая, что выход назван `new_layer`)?
Решение:
Размер выхода 512 — это вход, а количество классов 7 — это выход.
Код: new_layer = torch.nn.Linear(512, 7)
Шаг 3
Какой размер выходного признака требуется для нового линейного слоя?
Решение:
Размер выходного признака должен соответствовать числу целевых классов.
Размер: 7.